home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Utilities / PalmLink / src / palmlink_glob.h next >
C/C++ Source or Header  |  2000-05-05  |  15KB  |  201 lines

  1. /**
  2.  * PalmLink -- Connect 3Com Palm with Amiga
  3.  *
  4.  * Global header file
  5.  *
  6.  * (C) 1998-2000 Richard Körber <rkoerber@gmx.de>
  7.  *
  8.  *------------------------------------------------------------------
  9.  *
  10.  * This program is free software; you can redistribute it and/or modify
  11.  * it under the terms of the GNU General Public License as published by
  12.  * the Free Software Foundation; either version 2 of the License, or
  13.  * any later version.
  14.  *
  15.  * This program is distributed in the hope that it will be useful,
  16.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18.  * GNU General Public License for more details.
  19.  *
  20.  * You should have received a copy of the GNU General Public License
  21.  * along with this program; if not, write to the Free Software
  22.  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  23.  *
  24.  * You must not use this source code to gain profit of any kind!
  25.  */
  26.  
  27.  
  28. #ifndef PALMLINK_GLOB_H
  29. #define PALMLINK_GLOB_H
  30.  
  31. //#define DEBUGOUT                /* Debug output? */
  32.  
  33. //#define SERDEBUG                /* Debug: Serial interface */
  34. //#define SLPDEBUG                /* Debug: Serial Link Protocol */
  35. //#define PADPDEBUG               /* Debug: Packet Assembly Disassembly Protocol */
  36. //#define APIDEBUG                /* Debug: API */
  37. //#define DLPDEBUG                /* Debug: DLP */
  38. //#define FILEDEBUG               /* Debug: File */
  39.  
  40. #include <clib/alib_protos.h>
  41. #include <clib/exec_protos.h>
  42. #include <clib/dos_protos.h>
  43. #include <clib/utility_protos.h>
  44. #include <clib/rexxsyslib_protos.h>
  45. //#include <clib/palmlink_protos.h>
  46. #include <pragmas/exec_pragmas.h>
  47. #include <pragmas/dos_pragmas.h>
  48. #include <pragmas/utility_pragmas.h>
  49. #include <pragmas/rexxsyslib_pragmas.h>
  50. //#include <pragmas/palmlink_pragmas.h>
  51.  
  52. #include <exec/memory.h>
  53. #include <exec/libraries.h>
  54. #include <exec/semaphores.h>
  55. #include <utility/tagitem.h>
  56. #include <rexx/rxslib.h>
  57. #include <rexx/errors.h>
  58. #include <dos/dos.h>
  59. #include <dos/dosasl.h>
  60.  
  61. #include "palmlink.h"
  62. #include "palmlink_private.h"
  63.  
  64. #define max(a,b) ((a)>(b) ? (a) : (b))
  65. #define min(a,b) ((a)<(b) ? (a) : (b))
  66.  
  67.  
  68. struct Global
  69. {
  70.   UBYTE *slptrash;          /* Trash buffer for SLP */
  71.   struct SignalSemaphore rexxHandleSemaphore;
  72.   struct List rexxHandles;
  73.   BOOL rexxHandleOK;
  74. };
  75.  
  76. /*
  77. **  P R O T O T Y P E S
  78. */
  79. /*-- PL_Init.c --*/
  80. extern struct DOSBase       *DOSBase;
  81. extern struct Library       *UtilityBase;
  82. extern struct Library       *SysBase;
  83. extern struct Library       *RexxSysBase;
  84. extern struct Library       *PalmlinkBase;
  85. extern struct Global         global;
  86.  
  87. /*-- PL_Socket.c --*/
  88. extern __saveds __asm APTR PL_OpenSocket(register __a0 struct TagItem *taglist);
  89. extern __saveds __asm int PL_Accept(register __a0 APTR socket, register __d0 ULONG timeout);
  90. extern __saveds __asm int PL_Connect(register __a0 APTR socket);
  91. extern __saveds __asm LONG PL_LastError(register __a0 APTR socket);
  92. extern __saveds __asm ULONG PL_GetBaudRate(register __a0 APTR socket);
  93. extern __saveds __asm LONG PL_Read(register __a0 APTR socket, register __a1 APTR buffer, register __d0 LONG size);
  94. extern __saveds __asm LONG PL_Write(register __a0 APTR socket, register __a1 APTR buffer, register __d0 LONG size);
  95. extern __saveds __asm LONG PL_Tickle(register __a0 APTR socket);
  96. extern __saveds __asm void PL_CloseSocket(register __a0 APTR socket);
  97. extern __saveds __asm void PL_Explain(register __a0 LONG error, register __a1 STRPTR buffer, register __d0 ULONG length);
  98.  
  99. /*-- PL_Serial.c --*/
  100. extern int OpenPalmSerial(struct PL_Socket *sock, STRPTR device, ULONG unit, ULONG baud);
  101. extern void ClosePalmSerial(struct PL_Socket *sock);
  102. extern __saveds __asm int PL_RawSetRate(register __a0 APTR socket, register __d0 ULONG baud);
  103. extern __saveds __asm LONG PL_RawRead(register __a0 APTR socket, register __a1 APTR buffer, register __d0 LONG length);
  104. extern __saveds __asm LONG PL_RawWrite(register __a0 APTR socket, register __a1 APTR buffer, register __d0 LONG length);
  105. extern __saveds __asm int PL_RawFlush(register __a0 APTR socket);
  106.  
  107. /*-- PL_SLP.c --*/
  108. extern __saveds __asm LONG PL_SLPWrite(register __a0 APTR socket, register __a1 APTR buffer, register __d0 LONG length, register __a2 struct PL_SLP_Header *header, register __a3 struct PL_PADP_Header *padp);
  109. extern __saveds __asm LONG PL_SLPRead(register __a0 APTR socket, register __a1 APTR buffer, register __d0 LONG length, register __a2 struct PL_SLP_Header *header, register __a3 struct PL_PADP_Header *padp);
  110.  
  111. /*-- PL_PADP.c --*/
  112. extern __saveds __asm LONG PL_PADPWrite(register __a0 APTR socket, register __a1 APTR buffer, register __d0 LONG length, register __d1 UWORD type);
  113. extern __saveds __asm LONG PL_PADPRead(register __a0 APTR socket, register __a1 APTR buffer, register __d0 LONG length);
  114.  
  115. /*-- PL_CMP.c --*/
  116. extern __saveds __asm int PL_CMPAbort(register __a0 APTR socket, register __d0 UBYTE reason);
  117. extern __saveds __asm int PL_CMPInit(register __a0 APTR socket, register __d0 ULONG rate);
  118. extern __saveds __asm int PL_CMPWakeUp(register __a0 APTR socket, register __d0 ULONG maxrate);
  119. extern __saveds __asm int PL_CMPRead(register __a0 APTR socket, register __d0 struct PL_CMP *cmp);
  120.  
  121. /*-- PL_DLP.c --*/
  122. extern __saveds __asm void PL_DLPInit(register __a0 APTR socket);
  123. extern __saveds __asm LONG PL_DLPWriteByte(register __a0 APTR socket, register __d0 BYTE bdata);
  124. extern __saveds __asm LONG PL_DLPWriteWord(register __a0 APTR socket, register __d0 WORD wdata);
  125. extern __saveds __asm LONG PL_DLPWriteLong(register __a0 APTR socket, register __d0 LONG ldata);
  126. extern __saveds __asm LONG PL_DLPWrite(register __a0 APTR socket, register __a1 APTR packet, register __d0 LONG length);
  127. extern __saveds __asm LONG PL_DLPSend(register __a0 APTR socket, register __d0 UBYTE cmd, register __d1 UBYTE arg);
  128. extern __saveds __asm LONG PL_DLPRead(register __a0 APTR socket, register __a1 APTR buffer, register __d0 LONG length);
  129. extern __saveds __asm int DLP_OpenConduit(register __a0 APTR socket);
  130. extern __saveds __asm int DLP_EndOfSync(register __a0 APTR socket, register __d0 UWORD status);
  131. extern __saveds __asm int DLP_GetSysTime(register __a0 APTR socket, register __a1 struct DLP_SysTime *time);
  132. extern __saveds __asm int DLP_SetSysTime(register __a0 APTR socket, register __a1 struct DLP_SysTime *time);
  133. extern __saveds __asm int DLP_GetStorageInfo(register __a0 APTR socket, register __d0 UBYTE cardno, register __a1 struct DLP_StorageInfo *info);
  134. extern __saveds __asm int DLP_GetSysInfo(register __a0 APTR socket, register __a1 struct DLP_SysInfo *info);
  135. extern __saveds __asm int DLP_GetDBInfo(register __a0 APTR socket, register __d0 UBYTE cardno, register __d1 UBYTE flags, register __d2 UWORD start, register __a1 struct DLP_DBInfo *info);
  136. extern __saveds __asm LONG DLP_OpenDB(register __a0 APTR socket, register __d0 UBYTE cardno, register __d1 UBYTE mode, register __a1 STRPTR name);
  137. extern __saveds __asm int DLP_DeleteDB(register __a0 APTR socket, register __d0 UBYTE cardno, register __a1 STRPTR name);
  138. extern __saveds __asm LONG DLP_CreateDB(register __a0 APTR socket, register __d0 UBYTE cardno, register __d1 ULONG creator, register __d2 ULONG type, register __d3 UWORD flags, register __d4 UWORD version, register __a1 STRPTR name);
  139. extern __saveds __asm int DLP_CloseDB(register __a0 APTR socket, register __d0 LONG handle);
  140. extern __saveds __asm int DLP_CloseAllDB(register __a0 APTR socket);
  141. extern __saveds __asm int DLP_ResetSystem(register __a0 APTR socket);
  142. extern __saveds __asm int DLP_AddSyncLogEntry(register __a0 APTR socket, register __a1 STRPTR entry);
  143. extern __saveds __asm LONG DLP_CountDBEntries(register __a0 APTR socket, register __d0 LONG handle);
  144. extern __saveds __asm int DLP_MoveCategory(register __a0 APTR socket, register __d0 LONG handle, register __d1 UBYTE oldcat, register __d2 UBYTE newcat);
  145. extern __saveds __asm int DLP_SetUserInfo(register __a0 APTR socket, register __a1 struct DLP_UserInfo *user);
  146. extern __saveds __asm int DLP_GetUserInfo(register __a0 APTR socket, register __a1 struct DLP_UserInfo *user);
  147. extern __saveds __asm int DLP_SetNetSyncInfo(register __a0 APTR socket, register __a1 struct DLP_NetSyncInfo *netsync);
  148. extern __saveds __asm int DLP_GetNetSyncInfo(register __a0 APTR socket, register __a1 struct DLP_NetSyncInfo *netsync);
  149. extern __saveds __asm int DLP_ResetLastSyncPC(register __a0 APTR socket);
  150. extern __saveds __asm int DLP_ResetDBIndex(register __a0 APTR socket, register __d0 LONG handle);
  151. extern __saveds __asm LONG DLP_GetRecordIDList(register __a0 APTR socket, register __d0 LONG handle, register __d1 BOOL sort, register __d2 UWORD start, register __d3 UWORD max, register __a1 ULONG *ids);
  152. extern __saveds __asm int DLP_WriteRecord(register __a0 APTR socket, register __d0 LONG handle, register __d1 UBYTE flags, register __d2 ULONG id, register __d3 UBYTE catid, register __a1 APTR buffer, register __d4 UWORD length, register __a2 ULONG *newid);
  153. extern __saveds __asm int DLP_DeleteRecord(register __a0 APTR socket, register __d0 LONG handle, register __d1 BOOL all, register __d2 ULONG id);
  154. extern __saveds __asm int DLP_DeleteCategory(register __a0 APTR socket, register __d0 LONG handle, register __d1 UBYTE category);
  155. extern __saveds __asm LONG DLP_ReadResourceByType(register __a0 APTR socket, register __d0 LONG handle, register __d1 ULONG type, register __d2 UWORD id, register __a1 APTR buffer, register __a2 UWORD *index, register __a3 UWORD *size);
  156. extern __saveds __asm LONG DLP_ReadResourceByIndex(register __a0 APTR socket, register __d0 LONG handle, register __d1 UWORD index, register __a1 APTR buffer, register __a2 ULONG *type, register __a3 UWORD *id, register __d2 UWORD *size);
  157. extern __saveds __asm int DLP_WriteResource(register __a0 APTR socket, register __d0 LONG handle, register __d1 ULONG type, register __d2 UWORD id, register __a1 APTR buffer, register __d3 UWORD length);
  158. extern __saveds __asm int DLP_DeleteResource(register __a0 APTR socket, register __d0 LONG handle, register __d1 BOOL all, register __d2 ULONG restype, register __d3 UWORD resid);
  159. extern __saveds __asm LONG DLP_ReadAppBlock(register __a0 APTR socket, register __d0 LONG handle, register __d1 UWORD offset, register __a1 APTR buffer, register __d2 UWORD length);
  160. extern __saveds __asm int DLP_WriteAppBlock(register __a0 APTR socket, register __d0 LONG handle, register __a1 APTR buffer, register __d1 UWORD length);
  161. extern __saveds __asm LONG DLP_ReadSortBlock(register __a0 APTR socket, register __d0 LONG handle, register __d1 UWORD offset, register __a1 APTR buffer, register __d2 UWORD length);
  162. extern __saveds __asm int DLP_WriteSortBlock(register __a0 APTR socket, register __d0 LONG handle, register __a1 APTR buffer, register __d1 UWORD length);
  163. extern __saveds __asm int DLP_CleanUpDatabase(register __a0 APTR socket, register __d0 LONG handle);
  164. extern __saveds __asm int DLP_ResetSyncFlags(register __a0 APTR socket, register __d0 LONG handle);
  165. extern __saveds __asm LONG DLP_ReadNextCatRecord(register __a0 APTR socket, register __d0 LONG handle, register __d1 UBYTE cat, register __a1 APTR buffer, register __a2 ULONG *id, register __a3 UWORD *index, register __d2 UWORD *size, register __d3 UBYTE *attr);
  166. extern __saveds __asm LONG DLP_ReadAppPreference(register __a0 APTR socket, register __d0 ULONG creator, register __d1 UWORD id, register __d2 BOOL backup, register __d3 UWORD maxsize, register __a1 APTR buffer, register __a2 UWORD *size, register __a3 UWORD *version);
  167. extern __saveds __asm int DLP_WriteAppPreference(register __a0 APTR socket, register __d0 ULONG creator, register __d1 UWORD id, register __d2 BOOL backup, register __d3 UWORD version, register __a1 APTR buffer, register __d4 UWORD length);
  168. extern __saveds __asm LONG DLP_ReadNextModifiedCatRecord(register __a0 APTR socket, register __d0 LONG handle, register __d1 UBYTE cat, register __a1 APTR buffer, register __a2 ULONG *id, register __a3 UWORD *index, register __d2 UWORD *size, register __d3 UBYTE *attr);
  169. extern __saveds __asm LONG DLP_ReadRecordByID(register __a0 APTR socket, register __d0 LONG handle, register __d1 ULONG id, register __a1 APTR buffer, register __a2 UWORD *index, register __a3 UWORD *size, register __d2 UBYTE *attr, register __d3 UBYTE *cat);
  170. extern __saveds __asm LONG DLP_ReadRecordByIndex(register __a0 APTR socket, register __d0 LONG handle, register __d1 UWORD index, register __a1 APTR buffer, register __a2 ULONG *id, register __a3 UWORD *size, register __d2 UBYTE *attr, register __d3 UBYTE *cat);
  171. extern __saveds __asm LONG DLP_UnpackCategoryAppInfo(register __a0 struct PL_CategoryAppInfo *cai, register __a1 APTR record, register __d0 LONG length);
  172. extern __saveds __asm LONG DLP_PackCategoryAppInfo(register __a0 struct PL_CategoryAppInfo *cai, register __a1 APTR record, register __d0 LONG length);
  173.  
  174. /*-- PL_File.c --*/
  175. extern __saveds __asm APTR PL_FileOpen(register __a0 STRPTR name, register __a1 struct DLP_DBInfo *ndbinfo);
  176. extern __saveds __asm int PL_FileClose(register __a0 APTR fh);
  177. extern __saveds __asm struct DLP_DBInfo *PL_FileGetDBInfo(register __a0 APTR fh);
  178. extern __saveds __asm int PL_FileSetDBInfo(register __a0 APTR fh, register __a1 struct DLP_DBInfo *dbinfo);
  179. extern __saveds __asm APTR PL_FileGetAppInfo(register __a0 APTR fh, register __a1 ULONG *size);
  180. extern __saveds __asm int PL_FileSetAppInfo(register __a0 APTR fh, register __a1 APTR appinfo, register __d0 ULONG size);
  181. extern __saveds __asm APTR PL_FileGetSortInfo(register __a0 APTR fh, register __a1 ULONG *size);
  182. extern __saveds __asm int PL_FileSetSortInfo(register __a0 APTR fh, register __a1 APTR sortinfo, register __d0 ULONG size);
  183. extern __saveds __asm APTR PL_FileReadResource(register __a0 APTR fh, register __d0 UWORD ix, register __a1 ULONG *size, register __a2 ULONG *type, register __a3 UWORD *id);
  184. extern __saveds __asm int PL_FileAddResource(register __a0 APTR fh, register __a1 APTR buffer, register __d0 ULONG size, register __d1 ULONG type, register __d2 UWORD id);
  185. extern __saveds __asm APTR PL_FileReadRecord(register __a0 APTR fh, register __d0 UWORD ix, register __a1 ULONG *size, register __a2 UBYTE *attr, register __a3 ULONG *uid);
  186. extern __saveds __asm APTR PL_FileReadRecordID(register __a0 APTR fh, register __d0 ULONG uid, register __a1 ULONG *size, register __a2 UBYTE *attr, register __a3 UWORD *ix);
  187. extern __saveds __asm int PL_FileAddRecord(register __a0 APTR fh, register __a1 APTR buffer, register __d0 ULONG size, register __d1 UBYTE attr, register __d2 ULONG uid);
  188. extern __saveds __asm int PL_FileUsedID(register __a0 APTR fh, register __d0 ULONG uid);
  189. extern __saveds __asm int PL_FileRetrieve(register __a0 APTR fh, register __a1 APTR socket, register __d0 UBYTE cardno);
  190. extern __saveds __asm int PL_FileInstall(register __a0 APTR fh, register __a1 APTR socket, register __d0 UBYTE cardno);
  191. extern __saveds __asm int PL_FileMerge(register __a0 APTR fh, register __a1 APTR socket, register __d0 UBYTE cardno);
  192.  
  193. /*-- PL_ARexx.c --*/
  194. extern __saveds __asm LONG RexxCmd(register __a0 struct RexxMsg *rxmsg, register __a1 struct RexxArg **rxarg);
  195. extern __saveds __asm void PL_AddRexxHandle(register __a0 STRPTR name, register __a1 APTR handle);
  196. extern __saveds __asm APTR PL_FindRexxHandle(register __a0 STRPTR name);
  197. extern __saveds __asm void PL_DeleteRexxHandle(register __a0 STRPTR name);
  198.  
  199. #endif
  200.  
  201.